Recent computer systems often execute several tens of thousands to several hundreds of thousands of jobs overnight. Further, the amount of data to be processed is explosively increasing, so that it is becoming more common to handle several thousands to several tens of thousands of files.
With the increase in the number of jobs to be executed and the increase in the number of files to be handled, the execution time of tasks performed by a plurality of jobs is increasing. Therefore, there may be cases in which batch processing that needs to be finished within a specified time period does not complete within the specified time period, for example. Determination of whether batch processing completes within a specified time period may be made by estimating the batch processing time. As a technique for estimating the batch processing time, there has been proposed a method for estimating the batch processing time in a computer system capable of executing a plurality of jobs in parallel.
A solution for the case where batch processing might not complete within a specified time period may be to enhance the execution server, or to provide additional execution servers. Enhancing a server is to enhance the performance of a server. Providing additional servers is to increase the number of servers that execute jobs. Conventionally, in the case where a system does not have sufficient processing capacity, it was common to enhance the server. However, it is becoming difficult to handle the recent explosive increase in the amount of data to be processed by only enhancing the server. Then, additional servers are provided.
In the case where additional servers are provided, a large number of jobs are distributed to and executed by a plurality of servers. When executing the distributed jobs on the plurality of servers, the plurality of servers that execute the jobs share the files used for executing the jobs. Then, in order to prevent a file from being broken due to simultaneous updates of the file by a plurality of jobs running in parallel, the file is placed under exclusive control. When the file is under exclusive control, the file is managed in such a manner that as long as a certain server has an exclusive right to use the file, other servers are prevented from using the file.
For example, in addition to servers that execute jobs, a file exclusive control apparatus is provided. Thus, the file exclusive control apparatus performs exclusive control of a shared-file. As a technique related to file exclusive control apparatuses, there has been proposed a file exclusive control system that prevents concentration of processing load on a part of computers and file exclusive control apparatuses included in a parallel computer, and thereby prevents a reduction in the processing capacity of the entire parallel computer. In this file exclusive control system, for example, a plurality of file exclusive control apparatuses calculate the imbalance in the job processing load among a plurality of computers, using load information of each of the plurality of computers. Then, a job allocation is set again so as to eliminate the imbalance in the load.
Examples of the related art are disclosed in Japanese Laid-open Patent Publications No. 11-203151 and No. 2006-164082.
With the related-art techniques, however, in the case where a plurality of file exclusive control apparatuses perform exclusive control of files, the processing load of exclusive control on each file exclusive control apparatus is not accurately determined. Therefore, even when file exclusive control requests are distributed to the file exclusive control apparatuses, the number of exclusive control requests processed by each file exclusive control apparatus is not balanced. This might result in a delay in processing the exclusive control requests, and hence a reduction in the processing efficiency of the entire system.